代码仓
中

openUBMC 北向接口裁剪特性设计说明书 ​

所属SIG组:Interface
落入版本:2603
设计人员:李四光
日期:2026/04/20

Copyright © 2026 openUBMC Community

您对"本文档"的复制,使用,修改及分发受木兰宽松许可证, 第2版协议(以下简称"MulanPSL2")的约束。 为了方便用户理解,您可以通过访问https://license.coscl.org.cn/MulanPSL2了解MulanPSL2的概要 (但不是替代)。 MulanPSL2的完整协议内容您可以访问如下网址获取:https://license.coscl.org.cn/MulanPSL2。

改版记录

日期修订版本修订描述作者审核
2026/04/20v1.0首版本李四光王建

目录

  1. 特性概述

1.1 目的

1.2范围

1.3特性需求列表

  1. 需求场景分析

2.1特性需求来源与价值概述

2.2特性场景分析

2.3特性影响分析

2.3.1硬件限制

2.3.2技术限制

2.3.3对License的影响分析

2.3.4对系统性能规格的影响分析

2.3.5对系统可靠性规格的影响分析

2.3.6对系统兼容性的影响分析

2.3.7与其他重大特性的交互性,冲突性的影响分析

2.4同类社区/商用软件实现方案分析

  1. 特性/功能实现原理(可分解出来多个Use Case)

3.1目标

3.2总体方案

  1. Use Case一实现

4.1设计思路

4.2约束条件

4.3详细实现(从用户入口的模块级别或进程级别消息序列图)

4.4子系统间接口(主要覆盖模块接口定义)

4.5子系统详细设计

4.6DFX属性设计

4.6.1性能设计

4.6.2升级与扩容设计

4.6.3异常处理设计

4.6.4资源管理相关设计

4.6.5小型化设计

4.6.6可测性设计

4.6.7安全设计

4.7系统外部接口

4.8自测用例设计

  1. Use Case二实现

  2. 可靠性&可用性设计

6.1冗余设计

6.2故障管理

6.3过载控制设计

6.4升级不中断业务

6.5人因差错设计

6.6故障预测预防设计

  1. 安全&隐私&韧性设计

7.1Low Level威胁分析及设计

7.1.12层数据流图

7.1.2业务场景及信任边界说明

7.1.3外部交互方分析

7.1.4数据流分析

7.1.5处理过程分析

7.1.6数据存储分析

7.1.7缺陷列表

7.2隐私风险分析与设计

7.2.1隐私风险预分析问卷

7.2.2隐私风险预分析总结

7.2.3个人数据列表

7.2.4XX需求设计

7.2.5YY需求设计

  1. 特性非功能性质量属性相关设计

8.1可测试性

8.2可服务性

8.3可演进性

8.4开放性

8.5兼容性

8.6可伸缩性/可扩展性

8.7 可维护性

8.8 资料

  1. 数据结构设计(可选)

  2. 参考资料清单

表目录

图目录

List of abbreviations 缩略语清单 :

Abbreviations 缩略语Full spelling 英文全名Chinese explanation 中文解释

1.特性概述 ​

本特性旨在通过已有的多层级接口裁剪定制能力实现特性随接口裁剪诉求,从而支持产品特性裁剪时同步实现北向接口裁剪,支持特性最小集的同时降低固件包大小。

1.1目的 ​

本特性旨在解决以下核心问题:

  1. 特性裁剪时裁剪北向接口映射配置:产品进行特性裁剪时,将特性相关联的redfish接口、web rest接口、cli接口、snmp接口一并裁剪。
  2. 特性裁剪时裁剪redfish接口Schema:产品进行特性裁剪时,将特性相关联的redfish接口相关的schema配置文件一并裁剪。

1.2范围 ​

本特性主要包括如下核心功能:

  • 接口配置文件随特性裁剪:通过关联特性与接口多层级裁剪配置,实现特性裁剪的同时实现接口配置裁剪
  • 接口关联信息部分推导:借助MDS文件关联的资源协作接口对应的对外特性名称,借助资源协作接口关联的特性推导北向接口引用的属性、方法,从而识别部分待裁剪接口属性。

说明:因受限于北向映射器机制(数据引用、插件、脚本等),导致资源协作接口无法完全逆向推导北向接口相关信息,因此只能完成部分信息推导,剩余信息需要人工补齐。

1.3特性需求列表 ​

需求名称需求描述
支持北向接口结合特性可裁剪提供裁剪机制支持redfish、web rest、SNMP、CLI接口裁剪。

说明:该特性只提供裁剪能力,不做全量接口裁剪。

2.需求场景分析 ​

2.1特性需求来源与价值概述 ​

需求来源 ​

本特性来源于openUBMC开发过程中面临的如下挑战:

  • 固件包体积逐渐增大,需要提供最小功能集的同时实现功能(包括接口配置)文件的裁剪,从而降低固件包大小
  • 部分产品存在不支持或需要裁剪的特性,此时北向接口也需要同步裁剪,当前特性和接口没有机制能够关联裁剪

价值概述 ​

本特性的成功实施将为openUBMC开源社区带来以下核心价值:

  • 特性裁剪与接口配置关联,从而实现特性裁剪的同时完成接口裁剪
  • redfish接口裁剪的同时实现schema裁剪,进一步降低软件包大小

2.2特性场景分析 ​

使用者时间/频率关键场景/任务/场景
BMC开发人员开发阶段持续使用针对待裁剪特性关联的接口进行裁剪
测试人员测试阶段使用验证产品已将特性裁剪后,是否还残留北向接口

2.3特性影响分析 ​

本特性在整体开发体系中扮演着 “开发-调试” 的角色。它并非BMC产品固件本身的一部分,而是在开发阶段帮助开发人员快速实现特性对应北向接口信息辅助生成、特性与接口裁剪配置的关联、接口随特性在构建阶段进行同步裁剪(不含客户定制接口)。

2.3.1硬件限制 ​

不涉及

2.3.2技术限制 ​

编程语言:json

2.3.3对License的影响分析 ​

不涉及

2.3.4对系统性能规格的影响分析 ​

不涉及

2.3.5对系统可靠性规格的影响分析 ​

不涉及

2.3.6对系统兼容性的影响分析 ​

不涉及

2.3.7与其他重大特性的交互性,冲突性的影响分析 ​

不涉及

3.特性/功能实现原理 ​

3.1目标 ​

本特性的核心目标是提供机制实现特性与关联的北向接口(redfish、web rest、cli、snmp)同步裁剪能力。同时提供借助MDS文件实现资源协作接口关联的特性与部分北向接口信息的自动推导:

主要目标

  • 接口配置文件随特性裁剪:通过关联特性与接口多层级裁剪配置,实现特性裁剪的同时实现接口配置裁剪
  • 接口关联信息部分推导:借助MDS文件关联的资源协作接口对应的对外特性名称,借助资源协作接口关联的特性推导北向接口引用的属性、方法,从而识别部分待裁剪接口属性

3.2总体方案 ​

总体方案如下:

说明:因受限于北向映射器机制(数据引用、插件、脚本等),导致资源协作接口无法完全逆向推导北向接口相关信息,因此只能完成部分信息推导,剩余信息需要人工补齐。

关键点:

  • 裁剪能力复用:特性裁剪配置语法复用已有的多层级定制语法
  • 构建时触发:特性裁剪状态通过conan option传递后,在构建阶段执行接口裁剪
  • 部分接口配置自动推导:借助MDS关联的特性信息,实现特性关联的部分接口信息自动推导,从而简化开发人员手动配置工作
  • 人工校正完善:最终接口裁剪配置需要开发人员校正、完善、验证后上库
  • 扩展性:后续特性新增接口属性等信息裁剪需要基于多层级定制进行扩展和补充

4.Use Case一实现:北向接口随特性裁剪 ​

4.1设计思路 ​

提供接口随特性裁剪公共机制,构建阶段推导特性关联的部分接口信息,辅助开发人员识别特性相关的接口属性、方法等信息,开发人员对接口裁剪配置校正、完善、验证后上库。

4.2约束条件 ​

  • 通过MDS关联的特性推导关联的接口配置时,无法实现全部信息的推导(受限于映射器机制中的数据引用、插件、脚本能力无法完全逆向推导),仍然需要人工校正、完善从而得到最终接口裁剪配置。
  • 业务组件需要在MDS中关联资源协作接口相关特性名称,即标记接口关联的特性。
  • 组件打包时需要同步打包标记了特性的MDS文件,同时在HPM包构建时剔除该MDS文件(减少包大小)。

4.3详细实现 ​

4.4子系统间接口(主要覆盖模块接口定义) ​

不涉及

4.5子系统详细设计 ​

不涉及

4.6DFX属性设计 ​

4.6.1性能设计 ​

不涉及

4.6.2升级与扩容设计 ​

不涉及

4.6.3异常处理设计 ​

不涉及

4.6.4资源管理相关设计 ​

不涉及

4.6.5小型化设计 ​

不涉及

4.6.6可测性设计 ​

不涉及

4.6.7安全设计 ​

不涉及

4.7系统外部接口 ​

不涉及

4.8自测用例设计 ​

不涉及

5.Use Case二实现 ​

6.可靠性&可用性设计 ​

6.1冗余设计 ​

不涉及

6.2故障管理 ​

不涉及

6.3过载控制设计 ​

不涉及

6.4升级不中断业务 ​

不涉及

6.5人因差错设计 ​

不涉及

6.6故障预测预防设计 ​

不涉及

7.安全&隐私&韧性设计 ​

不涉及

7.1Low Level威胁分析及设计 ​

7.1.12层数据流图 ​

不涉及

7.1.2业务场景及信任边界说明 ​

不涉及

7.1.3外部交互方分析 ​

不涉及

7.1.4数据流分析 ​

不涉及

7.1.5处理过程分析 ​

不涉及

7.1.6数据存储分析 ​

不涉及

7.1.7缺陷列表 ​

不涉及

7.2隐私风险分析与设计 ​

不涉及

7.2.1隐私风险预分析问卷 ​

不涉及

7.2.2隐私风险预分析总结 ​

不涉及

7.2.3个人数据列表 ​

不涉及

7.2.4XX需求设计 ​

不涉及

7.2.5YY需求设计 ​

不涉及

8.特性非功能性质量属性相关设计 ​

8.1可测试性 ​

不涉及

8.2可服务性 ​

不涉及

8.3可演进性 ​

后续特性新增接口均基于当前多层级裁剪配置进行扩展

8.4开放性 ​

不涉及

8.5兼容性 ​

不涉及

8.6可伸缩性/可扩展性 ​

不涉及

8.7可维护性 ​

不涉及

8.8资料 ​

9.数据结构设计 ​

不涉及

10.参考资料清单 ​